The present invention relates to computer networks in general and more particularly to a technique for unambiguously delineating a file or job to a print server device in a local area network to determine when a file or job can be sent to a physical printer.
In a local area network (LAN), the print server is the focal point for printing jobs from large processors or personal computers, all of which are attached to the local area network. The shared (spooled) printers are controlled by the print server function with output not being sent to any of the printers until the entire print file has been received at the server device. The files or jobs may be printed on a first in-first out (FIFO) basis or by some more sophisticated queueing mechanism. However, each file or job must be properly delineated to avoid overlap. The print server can be a specialized personal computer such as the IBM Personal Computer AT.TM..
One of the primary network architectures in use today is the system network architecture (SNA) developed and marketed by IBM Corporation. Information units of different type formats carry messages through a computer network. A problem arises when devices utilizing different architectures are combined into a single network. Attempts to find an "End of File (EOF)" indicator which is consistent across SNA and non-SNA devices have not been successful. For example, the data stream architecture for IBM 3270 type devices does not address EOF in this environment.
There are several techniques in the prior art which are used to delimit jobs, however, none address the problem solved by this invention. In SNA networks, the BIND command is used at the initiation of communication between pairs of logical units to determine the functions that a device supports. A positive response from the receiver indicates that it supports the list of functions that the sender wishes to utilize. After all communication is complete, the sender issues an UNBIND command to end communications.
The BIND process takes a considerable amount of time, therefore once a BIND is established, it is left up for a long period of time. Thus, the BIND and UNBIND commands are not good for delimiting a job as they degrade performance. Furthermore, the concept does not exist in non-SNA devices. In systems which use the 3270 data stream architecture, more than half of the applications still use the binary synchronous communication (BSC) protocol for transmission, compared with the synchronous data link control (SDLC) protocol used by SNA devices.
The concept of brackets are used within the SNA architecture to delineate a transaction, a unit of work or a message. The "begin" bracket is, in effect, a flag or indication that a transaction has begun. The transaction is followed by an "end" bracket, which is, in effect, a flag that the transmission has ended.
An example of bracket usage is a query to another location for the time followed by a query for the date. If brackets were not used, the response to the time might be the date, if the date response program were faster than the time response program.
if a bracket is equated to a "file", this would be sufficient to delineate a file or job. The hazard is that different applications use brackets in various manners. For a print job, one might use a bracket per page, while another application might use a bracket for the entire document. The biggest limitation, however, is that the concept does not exist in non-SNA applications.
Time-outs are used for a variety of purposes in both SNA and non-SNA communications. For purposes of delimiting a job or file, they are to be avoided because they degrade performance. The method employed is to wait a longer than normal time to insure that the transaction is complete. The receiver device typically waits a minute in time duration to insure this.
The use of a unique control code embedded at the end of the job and interpreted as the end of job or end of file indicator also has several problems as regards current IBM implementations. For example, the end of file control code which exists in the ASCII character set, X'1A' has no counterpart in the EBCDIC character code set.
Certain printers support application programs that use the SNA Standard Character String (SCS) data stream while other printers support application programs that use the 3270 data stream. The first class of printers print unrecognized control codes as hyphens and the other class of printers reject unrecognized control codes with a negative response and terminate the printing process. The control code, End Message, used with the 3270 data stream is sent on a buffer basis and is not a reliable indicator of end of file as its name might imply. If an end of job control code were to be created, it would require the retrofit of many thousands of printers which would be prohibitively costly.